package Principal;

import java.io.IOException;

 /**
 * Clase para realizar la actualización de una moneda con un hilo.
 * @author Noelia Alonso Garrido
 * @author Abel Torres Alonso
 * @author Diego Vallejo Alonso
 */
public class HiloActualizador implements Runnable {

    public boolean terminado = false; //Indica si el hilo ha terminado de actualizar o no
    public boolean exito = false; //Indica si ha sido capaz de actualizar correctamente
    Moneda mon; //La moneda a actualizar

    /**
     * Método de creación
     * @param m la moneda a actualizar
     */
    public HiloActualizador(Moneda m) {
        this.mon = m;
    }

    /**
     * Actualiza una moneda. Si todo va bien, cambia las variables terminado y éxito a true. Si algo va mal (por ejemplo,
     * una excepción de entrada/salida por la conexión a internet) termina y pone éxito en false.
     */
    public void run() {
        try {
            this.mon.actualizaEquivalencia(); //Actualizamos la equivalencia de la moneda
            this.exito = true;  //Si todo va bien, indicamos éxito y que hemos terminado
            this.terminado = true;
        } catch (IOException ex) {
            this.exito = false; //Si actualizaEquivalencia nos devuelve una excepción, indicamos que no ha habido éxito.
            this.terminado = true;
            ex.printStackTrace();
            System.out.println("Hubo un problemilla con la actualización");
        }
    }
}